One important area of engineering design is circuit design. In circuit design, there are two main types of circuits: digital and analog circuits. The general aim of analog circuit design is to design an analog circuit with particular performance characteristics. In semiconductor analog circuit design, design of an analog circuit or subcircuit has two main steps: “front end design”—design of a circuit topology including device sizes, followed by “back end design”—design of a layout, for that topology. A topology is a set of devices (e.g. resistors), the devices' design variables (e.g. resistances), and how they are connected (e.g. wiring). A layout is a polygon-level description of a circuit that describes how the masks will be set ultimately “etched” during manufacturing.
Traditionally, both front end and back end analog design have been manual processes usually carried out by expert analog designers. The expertise of these designers is built up over years of experience; to become truly proficient a designer usually needs 10 years or more of training. This is because analog circuits have many characteristics that increase the difficulty of design, including nonlinear effects and the high sensitivity of the performance of the circuits to variations in manufacturing conditions and environmental conditions. The field of analog design has many heuristics to help overcome this sensitivity, such as heavy use of devices and groups of devices that “match” as well as use of symmetry.
Front end analog design has two sub-steps: topology design or topology selection, followed by device sizing. In back end analog design, there are three sub-steps: device generation, placement, and routing.
We now describe manual front end analog design. For a given design problem at hand, designers will typically try to find a topology that they think might meet performance goals. This is called “topology selection” and is usually relatively ad-hoc. Often, one topology will be tried; if it fails others will be tried. As an alternate to topology selection, or if no known topology can solve the design problem, then a new topology must be designed. In front end manual analog design, a topology is usually designed by a highly experienced designer or designers, and then is reused many times by analog designers at all levels of experience. An expert is needed because a strong understanding of analog circuit behavior is necessary.
Usually a new topology is designed using other topologies as starting points. Topology design is typically very time consuming—it is possible for a team of designers to spend six months working on a single topology. A topology is then “sized”. Sizing involves changing the values of the design variables to change performance characteristics, until the designer is satisfied with the performance characteristics.
Designers typically start with some rough estimates of what the value of each design variable should be; they simulate that circuit and examine the performance characteristics. Then they tweak the values of the design variables, re-simulate, and re-examine the performance characteristics. Designers typically have to repeat this process of tweaking, simulating, and examining many times. This process of sizing can typically be very long as well: with each new application of the topology it can take many weeks or months for a design team to come up with device parameter values that satisfy the performance characteristic goals.
We now describe manual back end analog design. In device generation, each device is first converted to a set of polygon structures. The designer manually moves these structures about on a two-dimensional plane until the designer is satisfied (“placement”). Then the designer connects the placed devices via wires that are implemented as long snaking sets of rectangles (“routing”). Manual placement and routing of analog circuits can typically take on the order of a few days to weeks or even months.
Manual analog design has strengths and weaknesses. The greatest strength is that of promoting understanding, which has many benefits including: the designers end up with a very strong understanding of the behavior of the circuit they are designing; their design knowledge has been increased for future design work; they are in a better position to change that topology design in the future; if they encounter problems during the design cycle they are better-equipped to deal with them. Another strength is the flexibility of manual design as compared to automated design, because automated tools may not be programmed to be able to do everything that is required in a given design step.
The greatest weakness of manual analog design is that it is very slow. Also, to get ever higher quality designs takes ever longer. Another weakness is that many steps are tedious, such as the sizing process. Another weakness is that it takes a long time for designers to become truly proficient at analog design; therefore for all the time that they are not fully proficient the design time is even longer, or design quality is lower, than it would have been if they were fully proficient. A final weakness is that sometimes design rigor is not followed; for example, at the beginning of the design cycle designers may not explicitly state which specific circuit characteristics are targeted; because there is no clear time to stop designing, this lack of rigor leads to overdesign and longer design cycles, or to underdesign.
Automated analog circuit design aims to resolve the greatest weakness of manual design: that manual design is slow. There have been various approaches to each of the sub-steps in analog circuit design: topology design, topology selection, sizing, device generation, placement, and routing. Each of the various approaches has had its own respective degree of success (or lack thereof, depending on the case).
Automated sizing is of particular interest because it is one area where there has been more success in automation.
A prevailing approach to automated sizing is as follows. In manual sizing the designer controls the design loop of “simulate circuit and examine performances, try new device parameter (design variable) values” which repeats until the designer is satisfied with the performance characteristics. In automated design, that same loop is controlled automatically; the designer or the computer may ultimately stop the repetition, depending on the implementation. There are various algorithms and heuristics to try new design variable values (e.g. simulated annealing or evolutionary algorithms). All the circuit performances have to be measured explicitly (e.g. how to measure power consumption), plus some means of specifying what the algorithm goals are based on those performances (e.g. “minimize” power consumption). A sizing process using this approach, including setup and post-run analysis, can typically reduce sizing times from months or weeks to days.
Automated analog design has strengths and weaknesses. The greatest strength is that design time can be greatly reduced. Also, design quality can be improved compared to what a manual design would be because the automated approach can examine a huge number of designs: performances could be higher, power could be lower, area could be lower, yield could be higher, resilience to manufacturing and environmental variations could be higher. Another strength is that design rigor is improved because all performance goals must be explicitly stated: the benefit is that the design's goals are always well documented, and the final designs are archived in a manner that explicitly states the resulting performance goals. A weakness of automated sizing is that it does not promote designer understanding; therefore all the benefits associated with designer understanding are not achieved. Also, the tools may not be as general and flexible as manual design. Also, because it does not promote designer understanding, adoption of such automated tools is slowed; designers are reluctant to use such tools because they want to maintain and build their understanding of circuits, e.g. so that they can properly do topology design.
In summary: manual analog design is slow but promotes designer understanding, whereas automated analog design is fast but does not promote designer understanding.
Accordingly, it is desirable to provide a method of design applicable to front end analog design which is faster than manual design and promotes designer understanding better than automated analog design.
It is also desirable to provide a method of design which enables a designer to apply the insights from the method for semi-automated design to improve the efficiency of automated design.